package com.p2p.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.sql.Timestamp;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "上架信息")
public class Shelf {
  @ApiModelProperty(name = "id", notes = "id", dataType = "Long", required = false)
  @TableId(type = IdType.ASSIGN_ID)
  private Long id;
  @ApiModelProperty(name = "loanId", notes = "借贷单id", dataType = "Long", required = false)
  private Long loanId;
  @ApiModelProperty(name = "tag", notes = "标的宣传标签(0.高收益  1.低风险  2.官方标  3.红包可用  4.新用户仅限一次  5.限时抢投)", dataType = "Byte", required = false)
  private Byte tag;
  @ApiModelProperty(name = "type", notes = "上架类型(标的类型(0.车贷宝  1.房贷宝  2.新手标  3.供应链金融))", dataType = "Byte", required = false)
  private Byte type;
  @ApiModelProperty(name = "minimumAmount", notes = "最低起投金额", dataType = "BigDecimal", required = true)
  private BigDecimal minimumAmount;
  @ApiModelProperty(name = "incrementalAmount", notes = "递增金额(0.100元  1.200元  2.500元  3.1000元)", dataType = "Byte", required = false)
  private Byte incrementalAmount;
  @ApiModelProperty(name = "maximumAmount", notes = "最大投资金额", dataType = "BigDecimal", required = false)
  private BigDecimal maximumAmount;
  @ApiModelProperty(name = "investmentInterest", notes = "投资计息方式(0.成交日  1.T+1  2.T+2  3.成立计息)", dataType = "Byte", required = false)
  private Byte investmentInterest;
  @ApiModelProperty(name = "channel", notes = "上架渠道(上架渠道(0.PC   1.APP))", dataType = "Byte", required = false)
  private Byte channel;
  @ApiModelProperty(name = "isCuration", notes = "是否精选(0.否  1.是)", dataType = "Byte", required = false)
  private Byte isCuration;
  @ApiModelProperty(name = "isNovice", notes = "新手专享（0.否  1.是）", dataType = "Byte", required = false)
  private Byte isNovice;
  @ApiModelProperty(name ="raiseStatus", notes = "募集状态（0.募集中  1.募集完成）", dataType = "Byte", required = true)
  private Byte raiseStatus;
  @ApiModelProperty(name = "raiseTimeType", notes = "募集时间类型（0.满标为止  1.设置时间）", dataType = "Byte", required = false)
  private Byte raiseTimeType;
  @ApiModelProperty(name = "raiseTime", notes = "募集时间", dataType = "String", required = false)
  private String raiseTime;
  @ApiModelProperty(name = "shelfTime", notes = "上架时间", dataType = "Timestamp", required = false)
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private Timestamp shelfTime;
  @ApiModelProperty(name = "openingTime", notes = "开标时间", dataType = "Timestamp", required = false)
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private Timestamp openingTime;
  @ApiModelProperty(name = "projectInfo", notes = "项目介绍", dataType = "String", required = false)
  private String projectInfo;
  @ApiModelProperty(name = "riskMeasures", notes = "风控措施", dataType = "String", required = false)
  private String riskMeasures;
  @ApiModelProperty(name = "createTime", notes = "创建时间", dataType = "Timestamp", required = false)
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private Timestamp createTime;
  @ApiModelProperty(name = "updateTime", notes = "更新时间", dataType = "Timestamp", required = false)
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private Timestamp updateTime;
  @ApiModelProperty(name = "isDelete", notes = "是否删除（0.否  1.是）", dataType = "Byte", required = false)
  @TableLogic
  private Byte isDelete;
}
